﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Web.UI.WebControls;
using MyWeb.Business;
using MyWeb.Common;

namespace MyWeb.Modules.Products
{
    public partial class ProductsViews : System.Web.UI.Page
    {
        private string _lang = "";
        private string _gid = ""; 
        private int currentpage { get { return ViewState["currentpage"] != null ? int.Parse(ViewState["currentpage"].ToString()) : 1; } set { ViewState["currentpage"] = value; } }
        private int pageCount { get { return ViewState["pageCount"] != null ? int.Parse(ViewState["pageCount"].ToString()) : 1; } set { ViewState["pageCount"] = value; } }
        private int pagesize = 12;
        string Where = "";

        protected void Page_Load(object sender, EventArgs e)
        {
            _lang = Session["Lang"].ToString() != "" ? Session["Lang"].ToString() : "vi";
            if (Page.RouteData.Values["groupId"] != null) _gid = Page.RouteData.Values["groupId"].ToString();
            if(!IsPostBack)
            {
                PreLoad();
            }

        }
        private void PreLoad()
        {
            var list = ProductsService.Products_Paging(currentpage.ToString(), pagesize.ToString(), "*", LoadWhere(), "[Date] desc");
            Show(list);
            BindPaging();
        }
        private void Show(List<Data.Products> list)
        {
            var s = "";
            var listg = GroupProductsService.GroupProducts_GetById(_gid);
            if (listg.Count > 0)
            {
                LoadMetaConfig(listg[0].Name, listg[0].Title, listg[0].Description, listg[0].Keyword);
                s += "<div class=\"gptitle clearn\"><h1>" + listg[0].Name + "</h1></div>";

                s += "<div class=\"pContent clearn\">";
                if (list.Count > 0)
                {
                    foreach (var t in list)
                    {
                        var link = "/san-pham/" + _gid + "/" + t.Tag + "/" + t.Id + ".html";
                        var linkdemo = "/demo/" + t.Tag + "/" + t.Id + ".html";
                        //<div class="pro">
                        s += "<div class=\"pro\"><div class=\"probox\">";

                        s += "<div class=\"ptitle\"><h1><a href=\"" + link + "\">" + t.Name + "</a></h1></div>";
                        s += "<img src='" + t.Images + "' alt='" + t.Name + "' />";
                        //s += "<p>" + StringClass.SubText(t.Content, 40) + "</p>";

                        s += "<div class=\"pfuntion clearn\"><ul>";
                        s += "<li><a href=\"" + link + "\">Xem chi tiết</a></li>";
                        s += "<li><a href=\"" + link + "#download\">Download</a></li>";
                        s += "<li><a href=\"" + linkdemo + "\">Demo</a></li>";
                        s += "</ul></div>";

                        s += "</div></div>";

                    }
                }
                s += "</div>";
            }
            ltrgrproducts.Text = s;
        }
        #region Load where
        private string LoadWhere()
        {
            Where = "Active = '1' and Lang = '" + _lang + "' and GroupProducsId = '" + _gid + "'";
            int recordCount = Int32.Parse(DataBindSQL.ExecuteScalar("Select Count(*) from [Products] Where " + Where));
            pageCount = (recordCount % pagesize == 0) ? recordCount / pagesize : recordCount / pagesize + 1;
            return Where;
        }
        #endregion
        #region Paging
        private void BindPaging()
        {
            int icurPage = currentpage;
            int ipCount = pageCount;
            first.Visible = false; prev.Visible = false; next.Visible = false; last.Visible = false; pNum.Visible = false;
            if (ipCount > 1)
            {
                pNum.Visible = true;
                int PageShow = 5;
                int FromPage;
                int ToPage;
                DataTable dt = new DataTable();
                dt.Columns.Add("PageIndex");
                dt.Columns.Add("PageText");
                FromPage = icurPage > PageShow ? icurPage - PageShow : 1;
                ToPage = (ipCount - icurPage > PageShow) ? icurPage + PageShow : ipCount;
                ltrPrivious.Text = "";
                ltrNext.Text = "";
                if (icurPage > 1)
                {
                    first.Visible = true; prev.Visible = true;
                }
                if (icurPage < ipCount)
                {
                    next.Visible = true; last.Visible = true;
                }
                if (icurPage > PageShow + 1) ltrPrivious.Text = "<span class=\"separator\">...</span>";
                if (icurPage - 10 > 0) dt.Rows.Add(icurPage - 9, icurPage - 10);
                for (int i = FromPage; i <= ToPage; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = i;
                    dr[1] = i;
                    dt.Rows.Add(dr);
                }
                if (icurPage + 10 <= ipCount) dt.Rows.Add(icurPage + 9, icurPage + 10);
                pNum.DataSource = dt;
                pNum.DataBind();
                if (icurPage + (PageShow + 2) < ipCount) ltrNext.Text = string.Format("<span class=\"separator\">...</span>");
            }
        }

        public void Page_Number_Click(object sender, EventArgs e)
        {
            string curPage = ((LinkButton)sender).CommandArgument;
            currentpage = int.Parse(curPage);
            PreLoad();
        }
        public void Page_Button_Click(object sender, EventArgs e)
        {
            if (((LinkButton)sender).ID == "prev")
            {
                if (currentpage > 1) currentpage = currentpage - 1;
            }
            else if (((LinkButton)sender).ID == "next")
            {
                if (currentpage < pageCount) currentpage = currentpage + 1;
            }
            else if (((LinkButton)sender).ID == "last")
            {
                currentpage = pageCount;
            }

            else if (((LinkButton)sender).ID == "first")
            {
                currentpage = 1;
            }
            PreLoad();
        }

        protected void pNum_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName.Equals("page"))
            {
                currentpage = Convert.ToInt32(e.CommandArgument.ToString());
                PreLoad();
            }
        }

        protected void pNum_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            LinkButton lnkPage = (LinkButton)e.Item.FindControl("btn");
            if (lnkPage.CommandArgument.ToString() == currentpage.ToString())
            {
                lnkPage.Enabled = false;
                lnkPage.CssClass = "selected";
            }
        }
        #endregion
        #region html code
        /*
         <div class="pbox">
            <div class="gptitle clearn"><h1>Phần mềm kế toán doanh nghiệp</h1></div>
            <div class="pContent clearn">
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
            <div class="gptitle clearn"><h1>Phần mềm kế toán doanh nghiệp</h1></div>
            <div class="pContent clearn">
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="pro">
                    <div class="probox">
                        <div class="ptitle"><h1><a href="#">Phần mềm kế toán doanh nghiệp vừa và nhỏ Biztech 2012</a></h1></div>
                        <img src="/images/Diem.png" alt="" />
                        <p>
                            Phần mềm kế toán Biztech Acouting 2012 gồm 13 phân hệ, được thiết kế dành cho các doanh
                            nghiệp vừa và nhỏ, với mục tiêu giúp doanh nghiệp không cần đầu tư nhiều chi phí,
                            không cần hiểu...
                        </p>
                        <div class="pfuntion clearn">
                            <ul>
                                <li><a href="#">Xem chi tiết</a></li>
                                <li><a href="#">Download</a></li>
                                <li><a href="#">Demo</a></li>
                            </ul>
                        </div>
                    </div>
                </div>
            </div>
        </div>
         */
        #endregion
        #region[LoadMetaConfig]
        void LoadMetaConfig(string strName, string strTitle, string strDescription, string strKeyword)
        {
            Page.Title = strTitle != "" ? strTitle : strName;
            Page.MetaDescription = strDescription;
            Page.MetaKeywords = strKeyword;
        }
        #endregion
    }
}